package com.hllxd.hism.star.basic.service.service;


import com.hllxd.hism.star.basic.service.model.RealtimeMetricDefineEntity;
import com.hllxd.hism.star.basic.service.model.dapan.*;
import com.hllxd.hism.star.basic.service.model.metric.MetricDefineEntity;
import com.hllxd.hism.star.basic.service.model.DimIndexChartEntity;
import com.hllxd.hism.star.basic.service.model.DimTableDataEntity;

import java.util.List;

/**
 * 计算任务白名单管理
 *
 * @author xiyong.lxy
 * @date 2020-10-12 16:51
 */
public interface DapanService {



    /**
     * 获取业务统计信息
     * {"dt":"20210722","dt2":"20210821","biz":"shop"}
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param biz    业务板块- 招聘板块
     * @return 大盘结构体
     */
    List<MetricDefineEntity> listDapanSeriesAll(String dt, String dt2, String biz);

    /**
     * 获取业务统计信息
     * {"dt":"20210722","dt2":"20210821","biz":"shop"}
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param biz    业务板块- 招聘板块
     * @param userid 指标IDs采用逗号分隔
     * @return 大盘结构体
     */
//    List<MetricDefineEntity> getYeWuResult2(String dt, String dt2, String biz, String userid);

    /**
     * 获取业务统计信息
     * {"dt":"20210722","dt2":"20210821","biz":"shop"}
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param biz    业务板块- 招聘板块
     * @param metaid 指标的全称id
     * @param userid 指标IDs采用逗号分隔
     * @return 大盘结构体
     */
    List<MetricDefineEntity> getYeWuResult3(String dt, String dt2, String biz, String metaid, String userid);


    /**
     * 获取大盘的时间信息
     * {"dt":"20210722"}
     *
     * @param dt 开始时间
     * @return 大盘结构体
     */
//    ZhibiaoDashboard listZhibiaoDashboard(String dt);

    /**
     * 获取业务统计信息
     * {"dt":"20210722","dt2":"20210821","pageName":"shop"}
     *
     * @param dt       开始时间
     * @param dt2      结束时间
     * @param pageName 主题名称
     * @return 大盘结构体
     */
//    DapanPkg getYeWuResult(String dt, String dt2, String pageName);


    /**
     * 全屏-获取指定指标metaID的数据
     * {"id":"Q001","dt":"20160823","dt2":"20210822","pageName":"shop"}
     *
     * @param dt       开始时间
     * @param dt2      结束时间
     * @param pageName 主题类型shop/scm/crm/order
     * @param id       对应的metaID
     * @return 指标队列
     */
    QuotaResult getQuotaList(String dt, String dt2, String pageName, String id);


    /**
     * 获取是离线指标的序列
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param metric 指标名称
     * @param biz    业务线
     * @return 指标序列
     */
    List<List<Object>> metricSeries(String dt, String dt2, String metric, String biz);


    /**
     * 健康分获取
     * @param dt 开始时间
     * @param dt2 结束时间
     * @param pageName 页面名称
     * @return 健康点
     */

    /**
     * 根据biz，appdiv获取下面所有web大盘趋势
     */
    List<DapanChartEntity> listAllMetricSeries(String startDt, String endDt, String biz, String appDiv, String platform);

    /**
     * 异常详情说明
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param biz    业务线
     * @param appdiv 应用模块
     * @param zgroup 分组
     * @return 异常列表
     */
    List<QuotaEntity> getWxExpList(String dt, String dt2, String biz, String appdiv, String zgroup);

    /**
     * 异常详情说明
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param biz    业务线
     * @param appdiv 应用模块
     * @return 异常列表
     */
//    List<QuotaEntity> listMetricAll(String dt, String dt2, String biz, String appdiv);

    /**
     * 流量中心-获取指标数据序列
     * {"dt":"2021-08-22 00:00","dt2":"2021-08-22 18:18","tag":"004^01_hll_20:020:BJ01",
     * "tableName":"bcp_counter_aggr_order_ts_biz",
     * "database":"bcp_time_series_v2","dtType":"1m"}
     *
     * @param dt       开始时间
     * @param dt2      结束时间
     * @param tag      对应标识key
     * @param table    对应influxTable
     * @param dimcombo 对应组合过滤条件
     * @return 数据队列
     */
    SeriesResult listSeries(String dt, String dt2, String tag, String table, String dimcombo);

    /**
     * 实时指标看板
     * {"dt":"20210722","dt2":"20210821","biz":"shop"}
     *
     * @param dt     开始时间
     * @param dt2    结束时间
     * @param biz    业务线
     * @param appdiv 业务板块
     * @param userid 指标IDs采用逗号分隔
     * @return 大盘结构体
     */
    List<RealtimeMetricDefineEntity> listRtKanban(String dt, String dt2, String biz, String appdiv, String userid);

    DimTableDataEntity listDashboardDimData(String bizTime, String appDiv, String biz, String dimId);

    DimIndexChartEntity getDimIndexChart(String dimId, String dimValue, String indexEn, String indexCn, String dimValueCn, String biz);

    List<QuotaEntity> listWebMetricAll(String bizTime, String bizTime1, String biz, String appDiv, String platform);

    List<DapanDimConfig> listDapanDimConfig(String bizTime, String appDiv, String biz);
}
